package com.image.androidimagebroswer.data;

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.provider.MediaStore;
import android.util.Log;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by liuzhao.futrue on 2018/8/26.
 * <p>
 * 负责数据的获取
 */

public class MediaData {

    private static List<String> sPhotoList = new ArrayList<>();// 使用的图片存储类

    /**
     * 获取数据信息
     *
     * @return
     */
    public static List<String> getPhotoList() {
        return sPhotoList;
    }


    public static void loadPhotos(Context context) {
        if (context == null) {
            return;
        }
        // 所需路径的uri：相册里的图片
        Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        ContentResolver resolver = context.getContentResolver();
        Cursor cursor = resolver.query(uri, null, null, null, null);
        if (cursor == null || cursor.getCount() <= 0) {
            // 保护性代码，避免出现没有图片的这种数据
            return;
        }
        // 清空自己，避免多次的调用导致出问题：一份数据被多次添加
        sPhotoList.removeAll(sPhotoList);
        sPhotoList.add("http://ox17scdzy.bkt.clouddn.com/18-8-25/62056478.jpg");
        sPhotoList.add("http://ox17scdzy.bkt.clouddn.com/18-8-25/4703068.jpg");
        sPhotoList.add("http://ox17scdzy.bkt.clouddn.com/18-8-25/47414436.jpg");
        sPhotoList.add("http://ox17scdzy.bkt.clouddn.com/18-8-25/59733378.jpg");
        sPhotoList.add("http://ox17scdzy.bkt.clouddn.com/18-8-25/2063515.jpg");
        sPhotoList.add("http://ox17scdzy.bkt.clouddn.com/18-8-25/97397350.jpg");
        // 循环不断的去往后读
        while (cursor.moveToNext()) {
            int index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            // 所需文件地址；
            String path = cursor.getString(index);
            File file = new File(path);
            if (file.exists()) {
                sPhotoList.add(path);
            }
        }

        printPhotoPath();
    }

    /**
     * 仅在测试环节使用，需要在测试环节使用，需要在测试状态下使用的话自己打开开关
     */
    private static void printPhotoPath() {
        if (true) {
            return;
        }
        for (String string : sPhotoList) {
            Log.i("lz", "path :" + string);
        }
    }

}
